<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Features · SlimerJS</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="Features of the scriptable web browser SlimerJS">
    <meta name="author" content="Laurent Jouanneau">

    <link href="assets/css/bootstrap.css" rel="stylesheet">
    <link href="assets/css/bootstrap-responsive.css" rel="stylesheet">
    <link href="assets/css/docs.css" rel="stylesheet">
    <link href="assets/js/google-code-prettify/prettify.css" rel="stylesheet">

    <!--[if lt IE 9]>
    <script src="assets/js/html5shiv.js"></script>
    <![endif]-->

    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/ico/apple-touch-icon-114-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/ico/apple-touch-icon-72-precomposed.png">
    <link rel="apple-touch-icon-precomposed" href="assets/ico/apple-touch-icon-57-precomposed.png">
    <link rel="shortcut icon" href="assets/ico/favicon.png">
  </head>

  <body data-spy="scroll" data-target=".bs-docs-sidebar">
    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>

          <a class="brand" href="index.html"><span>Slimer</span>JS</a>
          <div class="nav-collapse collapse">
            <ul class="nav">
                <li><a href="index.html">Home</a></li>
                <li class="active"><a href="features.html">Features</a></li>
                <li><a href="download.html">Download</a></li>
                <li><a href="https://docs.slimerjs.org">Documentation</a></li>
                <li><a href="https://github.com/laurentj/slimerjs">Source Code</a></li>
                <li><a href="faq.html">FAQ</a></li>
                <li><a href="community.html">Community</a></li>
                <li><a href="about.html">About</a></li>
            </ul>
          </div>
        </div>
      </div>
    </div>

    <header class="jumbotron subhead" id="overview">
      <div class="container">
        <div class="logo">
            <img class="" src="assets/img/glouton-boyEntete100.png"/>
        </div>
        <h1>Features</h1>
        <p class="lead">What can you do with <i class="slm">SlimerJS</i>?</p>
      </div>
    </header>

    <div class="container">
      <div class="row-fluid">
        <!--div class="span3 bs-docs-sidebar">
          <ul class="nav nav-list bs-docs-sidenav">
            <li><a href="#"><i class="icon-chevron-right"></i> </a></li>
          </ul>
        </div-->
        <div class="span9">
          <section id="contents">
            <!--div class="page-header">
              <h1>title</h1>
            </div-->

            <h2>A scriptable browser</h2>

            <p><span class="slm">SlimerJS</span> allows you to execute JavaScript
            outside a classical web browser.</p>

            <p>In your JavaScript you can use modules, providing access to many APIs:</p>

            <ul>
                <li>Read and write files.</li>
                <li>Load a web page and inspect its content.</li>
                <li>Act on a web page like a user: click on links,
                    fill in form fields etc. You can then inspect
                    the results, to test them or to retrieve them.</li>
                <li>Listen for network events, to do network monitoring
                    during the load of a webpage.</li>
                <li>Taking screenshots of a web page.</li>
            </ul>

            <p>Your script is also able to execute <a href="http://www.commonjs.org/">CommonJS</a> modules,
            even those written with the <a href="http://coffeescript.org/">CoffeeScript</a> language!
            Your main script can be written with CoffeeScript as well. SlimerJS recognizes <code>*.coffee</code> files.</p>


            <h2>Use latest Javascript language features</h2>

            <p>In your Slimerjs scripts, benefit latest
            <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference">Javascript features</a>
            implemented in Firefox, <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla">including
            ECMAScript 6 features</a>: iterators, generators, destructured assignement, Map and WeakMap,
            "let" keyword, arrow functions, promises etc. (except ES6 modules)</li>

            <h2>A modern browser with latest HTML5/JS/CSS enhancements</h2>

            <p>Since SlimerJS is executed on top of Firefox,
            it supports all the HTML5 and CSS standards recently
              implemented in Firefox.</p>
            
            <p>In fact, SlimerJS is not really stuck to a specific version of Gecko:
            it can use any recent version of Firefox 52+.</p>

            <p>The web page rendering in SlimerJS is <strong>strictly identical</strong>
            to the rendering in Firefox.</p>
            
            <p><strong>No problem to launch your web site or your web app that use HTML5 bleeding
            edge features!</strong></p>
 
            <p>See <a href="download.html">the download page</a> to know the version of
            Firefox compatible with the latest release of SlimerJS.</p>
 
            <p>You can go on <a href="http://caniuse.com">caniuse.com</a> to see the list of
            HTML5 features supported by Firefox and you can use in web pages loaded by
            SlimerJS.</p>
 

            <p style="text-align:center;font-size:2em;margin:2em"><strong><a href="download.html">Try SlimerJS</a></strong> for your web projects!</p>

            <h2>About differences with PhantomJS</h2>

            <p>APIs of SlimerJS are similar to the APIs of <a href="http://phantomjs.org/">PhantomJS</a>
            but there are <a href="https://docs.slimerjs.org/current/differences-with-phantomjs.html">a few
            differences in their behavior</a>.
            Some options and a few features are still missing.
            Feel free to help us to have a full compatibility (see release notes
            to have the list of missing features).</p>

            <p>However, most of scripts for PhantomJS run perfectly well with SlimerJS right now!</p>

            <p>SlimerJS provides some enhancements in the API. For example you can use <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promises</a>
              when opening a web page with <code>webpage.open()</code>.</p>

            <p>Contrary to PhantomJS, SlimerJS is not headless by default: you see windows
             and it then needs a graphical environment. Except if you are using
              Firefox 56+, by adding an <code>--headless</code> flag, or for
              older version of Firefox on linux, you can use a tool like
            <code>xvfb</code> to have this headless
            feature and to execute SlimerJS on Linux boxes that do not have xorg
              installed. See <a href="https://docs.slimerjs.org/current/installation.html#having-a-headless-slimerjs">the documentation about the headless mode</a>.</p>



            <h2>And some deprecated features...</h2>

            <ul>
              <li>Even if the <a href="https://developer.mozilla.org/en-US/docs/Archive/Add-ons/Add-on_SDK">Mozilla Add-on SDK</a> has been
                removed from Firefox 57, some of its modules are available and
                you can import them into your code in the same way
                as <strong>CommonJS</strong> modules.
              </li>
              <li>Flash is a dead technology, but <span class="slm">SlimerJS</span>
                is able to load Flash content if the Flash plugin is installed
                and if the version of Firefox is allowing it.
                (though the plugin's rendering cannot be seen when taking screenshots).</li>
            </ul>

          </section>
      </div>
    </div>
  </div>



    <footer class="footer">
      <div class="container">
          <ul class="bs-docs-social-buttons">
            <li>
              <a href="https://github.com/laurentj/slimerjs/"><img class="imgbtn" src="assets/img/git2.png"> Source Code</a> <span class="separator">//</span>
            </li>
            <li>
              <a href="https://github.com/laurentj/slimerjs/fork"><img class="imgbtn" src="assets/img/git1.png"> Fork</a> <span class="separator">//</span>
            </li>
            <li>
              <a href="https://twitter.com/slimerjs"><img src="assets/img/tweet.png"> Tweet</a> <span class="separator">//</span>
            </li>
            <li>
              <a href="https://groups.google.com/forum/#!forum/slimerjs"><img class="imgbtn" src="assets/img/tchat2.png"> Mail List</a> <span class="separator">//</span>
            </li>
            <li>
              <a href="https://github.com/laurentj/slimerjs/issues"><img class="imgbtn" src="assets/img/bug_bleu.png"> Bug? Ideas!</a>
            </li>
          </ul>
          <p>Copyright 2013-2018 Laurent Jouanneau / <a href="http://innophi.com">Innophi</a> - Design by <a href="http://www.3liz.com/">3Liz</a></p>
      </div>
    </footer>

    <!--script type="text/JavaScript" src="http://platform.twitter.com/widgets.js"></script-->
    <script src="assets/js/jquery.js"></script>
    <script src="assets/js/bootstrap.min.js"></script>

    <!--script src="assets/js/holder/holder.js"></script-->
    <!--script src="assets/js/google-code-prettify/prettify.js"></script-->
    <script src="assets/js/application.js"></script>



  </body>
</html>
